接著幾天會進行Dart的語法練習~(練習工具:https://dart.dev/#try-dart)
在練習之前先來了解一下Dart都有哪些資料型態!
除了指定資料型態的宣告,Dart也可以直接用var來宣告變數,會自動判別資料的型態。
所以可以將上面的程式碼改為用var來宣告並使用runtimeType來判斷變數的資料型態:
但是要注意使用var宣告變數時:
1. 給定初始值,就不能再賦予變數不同資料型態的值(原本name已經賦予資料型態為字串,不能再改為數值)
2. 一開始沒有給初始值,後面就可以更改成任意型態的變數
如果要宣告一個不會改變的變數,那就可以使用const跟final。
兩者區別在於,const在宣告的時候就要給定初始值,final可以先不賦予初始值之後再給,但只能設定一次。使用上兩個都可以直接宣告或是和資料型態一起使用。
1.final(可以先不給初始值)
因為使用final宣告變數name,變數就不能再改變,此處改變name值,就會出現錯誤。
2.const(一定要給初始值才能執行!)
const除了宣告變數之外也可以宣告陣列!
而被Const宣告的陣列,一樣不能再改變其值。
object和dynamic都是用來宣告資料型態可以任意改變的變數。
1.object(編譯階段檢查類型)
2.dynamic(編譯階段不檢查類型)
而object和dynamic不同的地方在於:使用dynamic宣告的變數在編譯階段是不會進行檢查的;object則會檢查,所以在下面的程式碼中a和b其實都沒有test()方法,但只有a.test()被檢查出有問題。
今日總結:
參考資料:
https://clay-atlas.com/blog/2021/02/25/dart-cn-tutorial/?amp=1
https://medium.com/@katelin013/flutter-%E8%B5%B7%E6%AD%A5%E8%B5%B0-%E8%81%8A%E8%81%8A-dart-%E7%9A%84%E5%9F%BA%E6%9C%AC%E4%BB%8B%E7%B4%B9-424a589a136c
https://dart.dev/language/functions